导航菜单

CSP

此文案需配合NOI大纲使用!

本篇文章是本人 各地搜刮 整理的来的,不喜勿喷!

会继续完善!(第一次用富文本,好不习惯呐!望各位dalao斧正!)

题目分布情况:

第一题:

基本语法编程题目(难度上升、偏思维逻辑)+推公式(过程,用代码边推边写)+实现细节

数学方面

唯一分解定理

素数筛(埃氏筛、欧拉筛(线性筛))

最大公约数(__gcd()函数)

最小公倍数

杨辉三角公式

入门算法

枚举法

模拟法

暴力、找规律

时间(空间)复杂度优化(数据类型、数组大小等)

第二题:

模拟

基础算法+时间(空间)优化

基础算法

高精度算法(加、减、乘、除(高精度除以低精度))

排序算法(十大排序)

洪水填充算法(Flood Fill)

贪心法

递推法(斐波那契公式(f(n)= f(n - 1) + f(n - 2))

递归法(一定要注意时间复杂度!)

二分法

倍增法

第三题:

DP动态规划(线性/背包/区间)

搜索 (DFS/BFS)

模型化题目

第四题:

DP动态规划

最短路径(图论+动态规划)

拓扑排序

哈希表(unordered_map)

链表

队列

树形数据结构(栈+树+搜索+结合题意)

2024可能会考的知识点(即以前未考过的):

递归法

倍增法

高精度算法

搜索(DFS/BFS)

重点放在第一题和第二题!!!第三、四题骗分即可!!!

注意事项:

1、一定要检查文件名!防止意外的爆0!!!

2、MLE(Memory Limit Exceeded:内存超限):

   ①一般的,开个int数组不要超过5500。二维不要超过[220][220]。

   ②减少递归算法的使用(很占空间!!!)

3、文件读写操作写错:

   ①每道题都要加上读写操作。如果没有的话会又意外的爆0(freopen)。

   ②专门留下几分钟检查读写操作!

4、RE(Runtime Error:运行错误):

   ①主函数必须用int !!!

   ②主函数末尾必须加return 0; !!!

   ③数组越界!!!(注意下标!)

   ④除以0

5、可能会丢分的操作

   ①代码(算法)错误

   ②TLE(Time Limit Exceeded:时间超限):

      循环次数太多

      搜索未记忆化‌※

6、(划重点!!!)一定要结合样例说明以及数据范围等条件来分析题目!!!不要着急写代码!!!

考试技巧:

1、暴力

   仅可作为打表,不可作为程序!

   暴力程序因情况来定

   俗话说得好:“暴力出奇迹,打表过样例!”

2、骗分

   例如只要有否定输出,如impossible,F,NO之类的,输出他,即可“偏分”!

3、调试DEV-C++

   把项目管理一栏勾上。再设置断点,慢慢调试。就可以模拟计算机的运行啦!

4、编写生成随机数的程序❤

   这样你在过了样例不放心时,就可以再生成一组数据了!

※记忆化代码:

int h[100][100];

int dfs(int n,int m){

if(h[n][m]) return h[n][m];

h[n][m] = h[n][m + 1] + h[n + 1][m];

return h[n][m];

}

❤生成随机数代码:

#include 

using namespace std;

int main(){

    srand(time(NULL));

    int n = rand() % 10000 + 1;    //生成一个随机数,其区间在1~10000之间。

    Cout 

相关推荐: